from google.colab import drive
drive.mount('/content/drive')
Drive already mounted at /content/drive; to attempt to forcibly remount, call drive.mount("/content/drive", force_remount=True).
import seaborn as sns
import os
import pandas as pd
import matplotlib.pyplot as plt
from sklearn import metrics
from sklearn.metrics import mean_squared_error
import csv
import numpy as np
%matplotlib inline
import cv2
import glob
from IPython.display import Image
# Encode text values to dummy variables(i.e. [1,0,0],[0,1,0],[0,0,1] for red,green,blue)
def encode_text_dummy(df, name):
dummies = pd.get_dummies(df[name])
for x in dummies.columns:
dummy_name = "{}-{}".format(name, x)
df[dummy_name] = dummies[x]
df.drop(name, axis=1, inplace=True)
# Encode text values to indexes(i.e. [1],[2],[3] for red,green,blue).
def encode_text_index(df, name):
le = preprocessing.LabelEncoder()
df[name] = le.fit_transform(df[name])
return le.classes_
# Encode a numeric column as zscores
def encode_numeric_zscore(df, name, mean=None, sd=None):
if mean is None:
mean = df[name].mean()
if sd is None:
sd = df[name].std()
df[name] = (df[name] - mean) / sd
# Convert all missing values in the specified column to the median
def missing_median(df, name):
med = df[name].median()
df[name] = df[name].fillna(med)
# Convert all missing values in the specified column to the default
def missing_default(df, name, default_value):
df[name] = df[name].fillna(default_value)
# Convert a Pandas dataframe to the x,y inputs that TensorFlow needs
def to_xy(df, target):
result = []
for x in df.columns:
if x != target:
result.append(x)
# find out the type of the target column.
target_type = df[target].dtypes
target_type = target_type[0] if isinstance(target_type, Sequence) else target_type
# Encode to int for classification, float otherwise. TensorFlow likes 32 bits.
if target_type in (np.int64, np.int32):
# Classification
dummies = pd.get_dummies(df[target])
return df[result].values.astype(np.float32), dummies.values.astype(np.float32)
else:
# Regression
return df[result].values.astype(np.float32), df[target].values.astype(np.float32)
# Nicely formatted time string
def hms_string(sec_elapsed):
h = int(sec_elapsed / (60 * 60))
m = int((sec_elapsed % (60 * 60)) / 60)
s = sec_elapsed % 60
return "{}:{:>02}:{:>05.2f}".format(h, m, s)
# Regression chart.
def chart_regression(pred,y,sort=True):
t = pd.DataFrame({'pred' : pred, 'y' : y.flatten()})
if sort:
t.sort_values(by=['y'],inplace=True)
a = plt.plot(t['y'].tolist(),label='expected')
b = plt.plot(t['pred'].tolist(),label='prediction')
plt.ylabel('output')
plt.legend()
plt.show()
# Remove all rows where the specified column is +/- sd standard deviations
def remove_outliers(df, name, sd):
drop_rows = df.index[(np.abs(df[name] - df[name].mean()) >= (sd * df[name].std()))]
df.drop(drop_rows, axis=0, inplace=True)
# Encode a column to a range between normalized_low and normalized_high.
def encode_numeric_range(df, name, normalized_low=-1, normalized_high=1,
data_low=None, data_high=None):
if data_low is None:
data_low = min(df[name])
data_high = max(df[name])
df[name] = ((df[name] - data_low) / (data_high - data_low)) * (normalized_high - normalized_low) + normalized_low
filename_read = os.path.join("/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/HousesInfo.txt")
cols=["Bedrooms","Bathrooms","area","zipcode","price"]
df = pd.read_csv(filename_read , sep=" ", header=None , names=cols)
df['id'] = range(len(df))
df.head()
| Bedrooms | Bathrooms | area | zipcode | price | id | |
|---|---|---|---|---|---|---|
| 0 | 4 | 4.0 | 4053 | 85255 | 869500 | 0 |
| 1 | 4 | 3.0 | 3343 | 36372 | 865200 | 1 |
| 2 | 3 | 4.0 | 3923 | 85266 | 889000 | 2 |
| 3 | 5 | 5.0 | 4022 | 85262 | 910000 | 3 |
| 4 | 3 | 4.0 | 4116 | 85266 | 971226 | 4 |
df.shape
(535, 6)
# Remove houses that are outliers, keep only houses that are between 100k and 900k in price
outlier_start = df.index[df['price'] <= 100000].tolist()
outlier_end = df.index[df['price'] >= 900000].tolist()
outlier_total = outlier_start + outlier_end
len(outlier_total)
130
range_outlier = (df['price'] > 100000) & (df['price'] < 900000)
df = df[range_outlier]
df
| Bedrooms | Bathrooms | area | zipcode | price | id | |
|---|---|---|---|---|---|---|
| 0 | 4 | 4.0 | 4053 | 85255 | 869500 | 0 |
| 1 | 4 | 3.0 | 3343 | 36372 | 865200 | 1 |
| 2 | 3 | 4.0 | 3923 | 85266 | 889000 | 2 |
| 6 | 3 | 4.0 | 2544 | 85262 | 799000 | 6 |
| 10 | 5 | 5.0 | 4829 | 85266 | 519200 | 10 |
| ... | ... | ... | ... | ... | ... | ... |
| 530 | 5 | 2.0 | 2066 | 94531 | 399900 | 530 |
| 531 | 4 | 3.5 | 9536 | 94531 | 460000 | 531 |
| 532 | 3 | 2.0 | 2014 | 94531 | 407000 | 532 |
| 533 | 4 | 3.0 | 2312 | 94531 | 419000 | 533 |
| 534 | 5 | 3.0 | 3796 | 94531 | 615000 | 534 |
405 rows × 6 columns
# Check missing values in specific columns
missing_values = df[['Bedrooms', 'Bathrooms', 'area', 'price', 'zipcode']].isnull().sum()
print(missing_values)
Bedrooms 0 Bathrooms 0 area 0 price 0 zipcode 0 dtype: int64
numeric_types = ['Bedrooms', 'Bathrooms', 'area']
# Encoding categorical features
encode_text_dummy(df, 'zipcode')
# Normalizing numeric features
for numCat in numeric_types:
encode_numeric_zscore(df, numCat)
df
| Bedrooms | Bathrooms | area | price | id | zipcode-36372 | zipcode-60002 | zipcode-60016 | zipcode-60046 | zipcode-62025 | ... | zipcode-93314 | zipcode-93446 | zipcode-93510 | zipcode-94501 | zipcode-94531 | zipcode-94565 | zipcode-94568 | zipcode-95220 | zipcode-96019 | zipcode-98021 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 0.520436 | 1.635628 | 1.539241 | 869500 | 0 | False | False | False | False | False | ... | False | False | False | False | False | False | False | False | False | False |
| 1 | 0.520436 | 0.494001 | 0.916083 | 865200 | 1 | True | False | False | False | False | ... | False | False | False | False | False | False | False | False | False | False |
| 2 | -0.372685 | 1.635628 | 1.425142 | 889000 | 2 | False | False | False | False | False | ... | False | False | False | False | False | False | False | False | False | False |
| 6 | -0.372685 | 1.635628 | 0.214810 | 799000 | 6 | False | False | False | False | False | ... | False | False | False | False | False | False | False | False | False | False |
| 10 | 1.413556 | 2.777256 | 2.220327 | 519200 | 10 | False | False | False | False | False | ... | False | False | False | False | False | False | False | False | False | False |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 530 | 1.413556 | -0.647627 | -0.204724 | 399900 | 530 | False | False | False | False | False | ... | False | False | False | False | True | False | False | False | False | False |
| 531 | 0.520436 | 1.064815 | 6.351603 | 460000 | 531 | False | False | False | False | False | ... | False | False | False | False | True | False | False | False | False | False |
| 532 | -0.372685 | -0.647627 | -0.250364 | 407000 | 532 | False | False | False | False | False | ... | False | False | False | False | True | False | False | False | False | False |
| 533 | 0.520436 | 0.494001 | 0.011187 | 419000 | 533 | False | False | False | False | False | ... | False | False | False | False | True | False | False | False | False | False |
| 534 | 1.413556 | 0.494001 | 1.313675 | 615000 | 534 | False | False | False | False | False | ... | False | False | False | False | True | False | False | False | False | False |
405 rows × 45 columns
print(df.shape)
(405, 45)
## Bathroom.jpg
new_images=[]
for number in range(1, 536):
for path in glob.glob("/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/" + str(number) + "_bathroom.jpg"):
if os.path.isfile(path):
new_images.append(path)
new_images
['/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/1_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/2_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/3_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/4_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/5_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/6_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/7_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/8_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/9_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/10_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/11_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/12_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/13_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/14_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/15_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/16_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/17_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/18_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/19_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/20_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/21_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/22_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/23_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/24_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/25_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/26_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/27_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/28_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/29_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/30_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/31_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/32_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/33_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/34_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/35_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/36_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/37_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/38_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/39_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/40_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/41_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/42_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/43_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/44_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/45_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/46_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/47_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/48_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/49_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/50_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/51_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/52_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/53_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/54_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/55_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/56_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/57_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/58_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/59_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/60_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/61_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/62_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/63_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/64_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/65_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/66_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/67_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/68_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/69_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/70_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/71_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/72_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/73_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/74_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/75_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/76_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/77_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/78_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/79_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/80_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/81_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/82_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/83_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/84_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/85_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/86_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/87_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/88_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/89_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/90_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/91_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/92_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/93_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/94_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/95_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/96_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/97_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/98_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/99_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/100_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/101_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/102_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/103_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/104_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/105_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/106_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/107_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/108_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/109_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/110_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/111_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/112_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/113_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/114_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/115_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/116_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/117_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/118_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/119_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/120_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/121_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/122_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/123_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/124_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/125_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/126_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/127_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/128_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/129_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/130_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/131_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/132_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/133_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/134_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/135_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/136_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/137_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/138_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/139_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/140_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/141_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/142_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/143_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/144_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/145_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/146_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/147_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/148_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/149_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/150_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/151_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/152_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/153_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/154_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/155_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/156_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/157_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/158_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/159_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/160_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/161_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/162_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/163_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/164_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/165_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/166_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/167_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/168_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/169_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/170_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/171_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/172_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/173_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/174_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/175_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/176_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/177_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/178_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/179_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/180_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/181_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/182_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/183_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/184_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/185_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/186_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/187_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/188_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/189_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/190_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/191_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/192_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/193_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/194_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/195_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/196_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/197_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/198_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/199_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/200_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/201_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/202_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/203_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/204_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/205_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/206_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/207_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/208_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/209_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/210_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/211_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/212_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/213_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/214_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/215_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/216_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/217_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/218_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/219_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/220_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/221_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/222_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/223_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/224_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/225_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/226_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/227_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/228_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/229_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/230_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/231_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/232_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/233_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/234_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/235_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/236_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/237_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/238_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/239_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/240_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/241_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/242_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/243_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/244_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/245_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/246_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/247_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/248_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/249_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/250_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/251_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/252_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/253_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/254_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/255_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/256_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/257_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/258_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/259_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/260_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/261_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/262_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/263_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/264_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/265_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/266_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/267_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/268_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/269_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/270_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/271_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/272_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/273_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/274_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/275_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/276_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/277_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/278_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/279_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/280_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/281_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/282_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/283_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/284_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/285_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/286_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/287_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/288_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/289_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/290_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/291_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/292_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/293_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/294_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/295_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/296_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/297_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/298_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/299_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/300_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/301_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/302_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/303_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/304_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/305_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/306_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/307_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/308_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/309_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/310_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/311_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/312_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/313_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/314_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/315_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/316_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/317_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/318_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/319_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/320_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/321_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/322_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/323_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/324_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/325_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/326_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/327_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/328_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/329_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/330_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/331_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/332_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/333_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/334_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/335_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/336_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/337_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/338_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/339_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/340_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/341_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/342_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/343_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/344_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/345_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/346_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/347_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/348_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/349_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/350_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/351_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/352_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/353_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/354_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/355_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/356_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/357_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/358_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/359_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/360_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/361_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/362_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/363_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/364_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/365_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/366_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/367_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/368_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/369_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/370_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/371_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/372_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/373_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/374_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/375_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/376_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/377_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/378_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/379_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/380_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/381_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/382_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/383_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/384_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/385_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/386_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/387_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/388_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/389_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/390_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/391_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/392_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/393_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/394_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/395_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/396_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/397_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/398_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/399_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/400_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/401_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/402_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/403_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/404_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/405_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/406_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/407_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/408_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/409_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/410_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/411_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/412_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/413_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/414_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/415_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/416_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/417_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/418_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/419_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/420_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/421_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/422_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/423_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/424_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/425_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/426_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/427_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/428_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/429_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/430_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/431_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/432_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/433_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/434_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/435_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/436_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/437_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/438_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/439_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/440_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/441_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/442_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/443_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/444_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/445_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/446_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/447_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/448_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/449_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/450_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/451_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/452_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/453_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/454_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/455_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/456_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/457_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/458_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/459_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/460_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/461_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/462_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/463_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/464_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/465_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/466_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/467_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/468_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/469_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/470_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/471_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/472_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/473_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/474_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/475_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/476_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/477_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/478_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/479_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/480_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/481_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/482_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/483_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/484_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/485_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/486_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/487_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/488_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/489_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/490_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/491_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/492_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/493_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/494_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/495_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/496_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/497_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/498_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/499_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/500_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/501_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/502_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/503_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/504_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/505_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/506_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/507_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/508_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/509_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/510_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/511_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/512_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/513_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/514_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/515_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/516_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/517_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/518_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/519_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/520_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/521_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/522_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/523_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/524_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/525_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/526_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/527_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/528_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/529_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/530_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/531_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/532_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/533_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/534_bathroom.jpg', '/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/535_bathroom.jpg']
img= pd.DataFrame(new_images,columns = ['bathroom_img'])
## bedroom images
bedroom_images = []
for number in range(1, 536):
for path in glob.glob("/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/" + str(number) + "_bedroom.jpg"):
if os.path.isfile(path):
bedroom_images.append(path)
img['bedroom_img']=bedroom_images
frontal_images = []
for number in range(1, 536):
for path in glob.glob("/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/" + str(number) + "_frontal.jpg"):
if os.path.isfile(path):
frontal_images.append(path)
img['frontal_img']=frontal_images
kitchen_images = []
for number in range(1, 536):
for path in glob.glob("/content/drive/MyDrive/dataset/CSC180_Project3/Houses Dataset/" + str(number) + "_kitchen.jpg"):
if os.path.isfile(path):
kitchen_images.append(path)
img['kitchen_img']=kitchen_images
img['id'] = range(len(img))
img.head()
| bathroom_img | bedroom_img | frontal_img | kitchen_img | id | |
|---|---|---|---|---|---|
| 0 | /content/drive/MyDrive/dataset/CSC180_Project3... | /content/drive/MyDrive/dataset/CSC180_Project3... | /content/drive/MyDrive/dataset/CSC180_Project3... | /content/drive/MyDrive/dataset/CSC180_Project3... | 0 |
| 1 | /content/drive/MyDrive/dataset/CSC180_Project3... | /content/drive/MyDrive/dataset/CSC180_Project3... | /content/drive/MyDrive/dataset/CSC180_Project3... | /content/drive/MyDrive/dataset/CSC180_Project3... | 1 |
| 2 | /content/drive/MyDrive/dataset/CSC180_Project3... | /content/drive/MyDrive/dataset/CSC180_Project3... | /content/drive/MyDrive/dataset/CSC180_Project3... | /content/drive/MyDrive/dataset/CSC180_Project3... | 2 |
| 3 | /content/drive/MyDrive/dataset/CSC180_Project3... | /content/drive/MyDrive/dataset/CSC180_Project3... | /content/drive/MyDrive/dataset/CSC180_Project3... | /content/drive/MyDrive/dataset/CSC180_Project3... | 3 |
| 4 | /content/drive/MyDrive/dataset/CSC180_Project3... | /content/drive/MyDrive/dataset/CSC180_Project3... | /content/drive/MyDrive/dataset/CSC180_Project3... | /content/drive/MyDrive/dataset/CSC180_Project3... | 4 |
print(img.shape)
print(df.shape)
(535, 5) (405, 45)
img = img[img['id'].isin(df['id'])]
df = df.drop('id', axis=1)
img = img.drop('id', axis=1)
print(img.shape)
print(df.shape)
(405, 4) (405, 44)
images_output=[]
for row_index,row in img.iterrows():
inputImages=[]
outputImage = np.zeros((128, 128, 3), dtype="uint8")
image_temp1 = cv2.imread(row.bathroom_img)
image1 = cv2.resize(image_temp1, (64 , 64))
image_temp2 = cv2.imread(row.bedroom_img)
image2 = cv2.resize(image_temp2, (64 , 64))
image_temp3 = cv2.imread(row.frontal_img)
image3 = cv2.resize(image_temp3, (64 , 64))
image_temp4 = cv2.imread(row.kitchen_img)
image4 = cv2.resize(image_temp4, (64 , 64))
inputImages.append(image1)
inputImages.append(image2)
inputImages.append(image3)
inputImages.append(image4)
outputImage[0:64, 0:64] = inputImages[0]
outputImage[0:64, 64:128] = inputImages[1]
outputImage[64:128, 64:128] = inputImages[2]
outputImage[64:128, 0:64] = inputImages[3]
images_output.append(outputImage)
from matplotlib import pyplot as plt
for i in images_output:
plt.figure(figsize=(8,8))
plt.imshow(i, interpolation='nearest')
plt.show()
img_arr=np.asarray(images_output)
img_arr.shape
(405, 128, 128, 3)
df.shape
(405, 44)
import tensorflow as tf
from tensorflow.keras.layers import Dense, Activation
from tensorflow.keras.callbacks import EarlyStopping
from tensorflow.keras.callbacks import ModelCheckpoint
from tensorflow.keras.layers import Input
from tensorflow.keras.utils import plot_model
from tensorflow.keras.models import Model
from tensorflow.keras.layers import Flatten
from tensorflow.keras.layers import Conv2D
from tensorflow.keras.layers import MaxPooling2D
from tensorflow.keras.layers import concatenate
from sklearn.model_selection import train_test_split
# Turn into numpy array and drop price column
x = np.asarray(df.drop('price', axis=1), dtype='float32')
y = np.asarray(df['price'], dtype='float32')
x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.20, random_state=777)
x_train_image, x_test_image = train_test_split(img_arr, test_size=0.20, random_state=777)
print(x_train.shape, x_test.shape, y_train.shape, y_test.shape)
print(x_train_image.shape, x_test_image.shape)
(324, 43) (81, 43) (324,) (81,) (324, 128, 128, 3) (81, 128, 128, 3)
import os
saved_path = './Prj3Models/'
if not os.path.exists(saved_path):
os.makedirs(saved_path)
# saved_path = './Prj3Models/'
# Save best model
checkpointer = ModelCheckpoint(filepath=os.path.join(saved_path, "relu_model.keras"), verbose=0, save_best_only=True)
# Loop model training 5 times
for i in range(5):
print('\nRun', i + 1)
# Input layer for text data
input1 = Input(shape=(43,))
flat = Flatten()(input1) # Flatten input data
# Dense layers with ReLU activation
dense1 = Dense(256, activation='relu')(flat)
dense2 = Dense(128, activation='relu')(dense1)
dense3 = Dense(64, activation='relu')(dense2)
# Final layer to output 25 units
text_model = Dense(25, activation='relu')(dense3)
# Input layer for image data
input2 = Input(shape=(128,128,3))
# Convolution and MaxPooling layers for image processing
conv1 = Conv2D(64, kernel_size=4, activation='relu')(input2)
pool1 = MaxPooling2D(pool_size=(2, 2))(conv1)
conv2 = Conv2D(32, kernel_size=4, activation='relu')(pool1)
pool2 = MaxPooling2D(pool_size=(2, 2))(conv2)
conv3 = Conv2D(16, kernel_size=4, activation='relu')(pool2)
pool3 = MaxPooling2D(pool_size=(2, 2))(conv3)
# Flatten the processed image data
image_model = Flatten()(pool3)
# Merge the two input models
merge = concatenate([text_model, image_model]) # Concatenate the outputs from the text and image models
# Additional Dense layers for interpretation
hidden1 = Dense(50, activation='relu')(merge)
hidden2 = Dense(30, activation='relu')(hidden1)
hidden3 = Dense(15, activation='relu')(hidden2)
output = Dense(1, activation='linear')(hidden3)
relu_model = Model(inputs=[input1, input2], outputs=output)
relu_model.compile( optimizer='adam', loss='mean_squared_error')
monitor = EarlyStopping(monitor='val_loss', min_delta=1e-3, patience=12, verbose=1, mode='auto')
relu_model.fit([x_train, x_train_image], y_train, validation_data=([x_test, x_test_image], y_test), callbacks=[monitor, checkpointer], verbose=2, epochs=1000)
print('Runs complete, saving model')
print()
relu_model.load_weights(os.path.join(saved_path, "relu_model.keras"))
Run 1 Epoch 1/1000 11/11 - 9s - 861ms/step - loss: 272922771456.0000 - val_loss: 312374362112.0000 Epoch 2/1000 11/11 - 5s - 431ms/step - loss: 227715547136.0000 - val_loss: 94205190144.0000 Epoch 3/1000 11/11 - 0s - 32ms/step - loss: 67499188224.0000 - val_loss: 66069225472.0000 Epoch 4/1000 11/11 - 1s - 52ms/step - loss: 58600828928.0000 - val_loss: 45193867264.0000 Epoch 5/1000 11/11 - 0s - 20ms/step - loss: 56408850432.0000 - val_loss: 62535770112.0000 Epoch 6/1000 11/11 - 0s - 34ms/step - loss: 51465555968.0000 - val_loss: 43443556352.0000 Epoch 7/1000 11/11 - 0s - 21ms/step - loss: 47671902208.0000 - val_loss: 47841042432.0000 Epoch 8/1000 11/11 - 0s - 28ms/step - loss: 46791421952.0000 - val_loss: 43506098176.0000 Epoch 9/1000 11/11 - 0s - 20ms/step - loss: 47209844736.0000 - val_loss: 50657443840.0000 Epoch 10/1000 11/11 - 0s - 28ms/step - loss: 49507241984.0000 - val_loss: 43109527552.0000 Epoch 11/1000 11/11 - 0s - 21ms/step - loss: 48454041600.0000 - val_loss: 43264446464.0000 Epoch 12/1000 11/11 - 0s - 21ms/step - loss: 46383747072.0000 - val_loss: 47561515008.0000 Epoch 13/1000 11/11 - 0s - 33ms/step - loss: 47793516544.0000 - val_loss: 40913518592.0000 Epoch 14/1000 11/11 - 0s - 22ms/step - loss: 44700921856.0000 - val_loss: 41977098240.0000 Epoch 15/1000 11/11 - 0s - 27ms/step - loss: 42357927936.0000 - val_loss: 38638297088.0000 Epoch 16/1000 11/11 - 0s - 27ms/step - loss: 40870637568.0000 - val_loss: 37878153216.0000 Epoch 17/1000 11/11 - 0s - 20ms/step - loss: 38464593920.0000 - val_loss: 38045913088.0000 Epoch 18/1000 11/11 - 0s - 33ms/step - loss: 36282863616.0000 - val_loss: 34722934784.0000 Epoch 19/1000 11/11 - 0s - 26ms/step - loss: 35638902784.0000 - val_loss: 33550471168.0000 Epoch 20/1000 11/11 - 0s - 21ms/step - loss: 34160752640.0000 - val_loss: 37621956608.0000 Epoch 21/1000 11/11 - 0s - 27ms/step - loss: 33692377088.0000 - val_loss: 32251754496.0000 Epoch 22/1000 11/11 - 0s - 20ms/step - loss: 31190611968.0000 - val_loss: 33285238784.0000 Epoch 23/1000 11/11 - 0s - 26ms/step - loss: 30081363968.0000 - val_loss: 29966483456.0000 Epoch 24/1000 11/11 - 0s - 27ms/step - loss: 28590931968.0000 - val_loss: 28532477952.0000 Epoch 25/1000 11/11 - 0s - 27ms/step - loss: 27120068608.0000 - val_loss: 27495303168.0000 Epoch 26/1000 11/11 - 0s - 26ms/step - loss: 26251427840.0000 - val_loss: 25973571584.0000 Epoch 27/1000 11/11 - 0s - 22ms/step - loss: 23982901248.0000 - val_loss: 26389432320.0000 Epoch 28/1000 11/11 - 0s - 26ms/step - loss: 23164993536.0000 - val_loss: 22558248960.0000 Epoch 29/1000 11/11 - 0s - 21ms/step - loss: 20169193472.0000 - val_loss: 23336159232.0000 Epoch 30/1000 11/11 - 0s - 33ms/step - loss: 19088652288.0000 - val_loss: 17907929088.0000 Epoch 31/1000 11/11 - 0s - 26ms/step - loss: 17829492736.0000 - val_loss: 16359235584.0000 Epoch 32/1000 11/11 - 0s - 20ms/step - loss: 15602465792.0000 - val_loss: 16535483392.0000 Epoch 33/1000 11/11 - 0s - 33ms/step - loss: 15133208576.0000 - val_loss: 14929583104.0000 Epoch 34/1000 11/11 - 0s - 27ms/step - loss: 14705600512.0000 - val_loss: 14389203968.0000 Epoch 35/1000 11/11 - 0s - 27ms/step - loss: 13614531584.0000 - val_loss: 12875829248.0000 Epoch 36/1000 11/11 - 0s - 22ms/step - loss: 13435763712.0000 - val_loss: 13123358720.0000 Epoch 37/1000 11/11 - 0s - 20ms/step - loss: 13054435328.0000 - val_loss: 13125324800.0000 Epoch 38/1000 11/11 - 0s - 37ms/step - loss: 12524156928.0000 - val_loss: 12853517312.0000 Epoch 39/1000 11/11 - 0s - 31ms/step - loss: 13384571904.0000 - val_loss: 12214128640.0000 Epoch 40/1000 11/11 - 0s - 23ms/step - loss: 12462684160.0000 - val_loss: 12244405248.0000 Epoch 41/1000 11/11 - 0s - 31ms/step - loss: 12562432000.0000 - val_loss: 12102523904.0000 Epoch 42/1000 11/11 - 0s - 32ms/step - loss: 11608871936.0000 - val_loss: 11523859456.0000 Epoch 43/1000 11/11 - 1s - 56ms/step - loss: 11111185408.0000 - val_loss: 11177761792.0000 Epoch 44/1000 11/11 - 1s - 59ms/step - loss: 10781454336.0000 - val_loss: 11119971328.0000 Epoch 45/1000 11/11 - 0s - 22ms/step - loss: 10871714816.0000 - val_loss: 11620882432.0000 Epoch 46/1000 11/11 - 0s - 20ms/step - loss: 11530723328.0000 - val_loss: 11866948608.0000 Epoch 47/1000 11/11 - 0s - 28ms/step - loss: 10657134592.0000 - val_loss: 11935369216.0000 Epoch 48/1000 11/11 - 0s - 26ms/step - loss: 10792824832.0000 - val_loss: 11012178944.0000 Epoch 49/1000 11/11 - 0s - 20ms/step - loss: 10049150976.0000 - val_loss: 11859600384.0000 Epoch 50/1000 11/11 - 0s - 28ms/step - loss: 10603464704.0000 - val_loss: 12385221632.0000 Epoch 51/1000 11/11 - 0s - 33ms/step - loss: 10430884864.0000 - val_loss: 10651220992.0000 Epoch 52/1000 11/11 - 0s - 27ms/step - loss: 9564369920.0000 - val_loss: 10457781248.0000 Epoch 53/1000 11/11 - 0s - 21ms/step - loss: 9698971648.0000 - val_loss: 11102528512.0000 Epoch 54/1000 11/11 - 0s - 26ms/step - loss: 9185722368.0000 - val_loss: 10641251328.0000 Epoch 55/1000 11/11 - 0s - 20ms/step - loss: 9985287168.0000 - val_loss: 10603106304.0000 Epoch 56/1000 11/11 - 0s - 27ms/step - loss: 9115320320.0000 - val_loss: 10709874688.0000 Epoch 57/1000 11/11 - 0s - 20ms/step - loss: 9232033792.0000 - val_loss: 10869742592.0000 Epoch 58/1000 11/11 - 0s - 20ms/step - loss: 9495972864.0000 - val_loss: 11989398528.0000 Epoch 59/1000 11/11 - 0s - 33ms/step - loss: 9487364096.0000 - val_loss: 10449198080.0000 Epoch 60/1000 11/11 - 0s - 20ms/step - loss: 9223617536.0000 - val_loss: 10463561728.0000 Epoch 61/1000 11/11 - 0s - 26ms/step - loss: 9033085952.0000 - val_loss: 10272291840.0000 Epoch 62/1000 11/11 - 0s - 22ms/step - loss: 8730437632.0000 - val_loss: 10377329664.0000 Epoch 63/1000 11/11 - 0s - 27ms/step - loss: 8531833344.0000 - val_loss: 10342001664.0000 Epoch 64/1000 11/11 - 0s - 27ms/step - loss: 8576715776.0000 - val_loss: 10451055616.0000 Epoch 65/1000 11/11 - 0s - 20ms/step - loss: 8336347648.0000 - val_loss: 10321449984.0000 Epoch 66/1000 11/11 - 0s - 27ms/step - loss: 8375233024.0000 - val_loss: 10446371840.0000 Epoch 67/1000 11/11 - 0s - 20ms/step - loss: 8354375680.0000 - val_loss: 10529594368.0000 Epoch 68/1000 11/11 - 0s - 27ms/step - loss: 8131072000.0000 - val_loss: 12241502208.0000 Epoch 69/1000 11/11 - 0s - 20ms/step - loss: 8511993856.0000 - val_loss: 10359767040.0000 Epoch 70/1000 11/11 - 0s - 28ms/step - loss: 8060099584.0000 - val_loss: 10978538496.0000 Epoch 71/1000 11/11 - 0s - 21ms/step - loss: 8062827520.0000 - val_loss: 10423523328.0000 Epoch 72/1000 11/11 - 0s - 20ms/step - loss: 8322983936.0000 - val_loss: 11337521152.0000 Epoch 73/1000 11/11 - 0s - 20ms/step - loss: 7840099840.0000 - val_loss: 10463460352.0000 Epoch 73: early stopping Run 2 Epoch 1/1000 11/11 - 10s - 876ms/step - loss: 267258183680.0000 - val_loss: 259932880896.0000 Epoch 2/1000 11/11 - 0s - 28ms/step - loss: 106805190656.0000 - val_loss: 50610733056.0000 Epoch 3/1000 11/11 - 0s - 21ms/step - loss: 66623197184.0000 - val_loss: 47928381440.0000 Epoch 4/1000 11/11 - 0s - 20ms/step - loss: 54566809600.0000 - val_loss: 56346836992.0000 Epoch 5/1000 11/11 - 0s - 21ms/step - loss: 50903007232.0000 - val_loss: 43162292224.0000 Epoch 6/1000 11/11 - 0s - 26ms/step - loss: 48324743168.0000 - val_loss: 43394420736.0000 Epoch 7/1000 11/11 - 0s - 27ms/step - loss: 47598956544.0000 - val_loss: 48775254016.0000 Epoch 8/1000 11/11 - 0s - 27ms/step - loss: 48255660032.0000 - val_loss: 42740350976.0000 Epoch 9/1000 11/11 - 0s - 20ms/step - loss: 46935891968.0000 - val_loss: 46169903104.0000 Epoch 10/1000 11/11 - 0s - 21ms/step - loss: 46176088064.0000 - val_loss: 42953801728.0000 Epoch 11/1000 11/11 - 0s - 20ms/step - loss: 46702272512.0000 - val_loss: 56010010624.0000 Epoch 12/1000 11/11 - 0s - 28ms/step - loss: 49683271680.0000 - val_loss: 41266475008.0000 Epoch 13/1000 11/11 - 0s - 27ms/step - loss: 44633038848.0000 - val_loss: 40359960576.0000 Epoch 14/1000 11/11 - 0s - 20ms/step - loss: 43521232896.0000 - val_loss: 41994715136.0000 Epoch 15/1000 11/11 - 0s - 21ms/step - loss: 41231835136.0000 - val_loss: 36438765568.0000 Epoch 16/1000 11/11 - 0s - 27ms/step - loss: 39191728128.0000 - val_loss: 36202024960.0000 Epoch 17/1000 11/11 - 0s - 27ms/step - loss: 36538523648.0000 - val_loss: 35685888000.0000 Epoch 18/1000 11/11 - 0s - 27ms/step - loss: 35283095552.0000 - val_loss: 33873610752.0000 Epoch 19/1000 11/11 - 0s - 21ms/step - loss: 33944877056.0000 - val_loss: 33315268608.0000 Epoch 20/1000 11/11 - 0s - 21ms/step - loss: 33585446912.0000 - val_loss: 41680842752.0000 Epoch 21/1000 11/11 - 0s - 21ms/step - loss: 34264877056.0000 - val_loss: 32696600576.0000 Epoch 22/1000 11/11 - 0s - 27ms/step - loss: 32500652032.0000 - val_loss: 32595482624.0000 Epoch 23/1000 11/11 - 0s - 27ms/step - loss: 31260354560.0000 - val_loss: 34459127808.0000 Epoch 24/1000 11/11 - 0s - 21ms/step - loss: 29883645952.0000 - val_loss: 27997245440.0000 Epoch 25/1000 11/11 - 0s - 21ms/step - loss: 26475892736.0000 - val_loss: 27637485568.0000 Epoch 26/1000 11/11 - 0s - 21ms/step - loss: 25135038464.0000 - val_loss: 24711933952.0000 Epoch 27/1000 11/11 - 0s - 29ms/step - loss: 23849510912.0000 - val_loss: 26669041664.0000 Epoch 28/1000 11/11 - 0s - 23ms/step - loss: 22670524416.0000 - val_loss: 21265831936.0000 Epoch 29/1000 11/11 - 0s - 22ms/step - loss: 20447705088.0000 - val_loss: 21629337600.0000 Epoch 30/1000 11/11 - 0s - 22ms/step - loss: 18412314624.0000 - val_loss: 18302289920.0000 Epoch 31/1000 11/11 - 0s - 24ms/step - loss: 16776882176.0000 - val_loss: 15561116672.0000 Epoch 32/1000 11/11 - 0s - 23ms/step - loss: 15421431808.0000 - val_loss: 14751534080.0000 Epoch 33/1000 11/11 - 0s - 27ms/step - loss: 15177242624.0000 - val_loss: 13337240576.0000 Epoch 34/1000 11/11 - 0s - 27ms/step - loss: 13458414592.0000 - val_loss: 13061388288.0000 Epoch 35/1000 11/11 - 0s - 23ms/step - loss: 13233042432.0000 - val_loss: 12782821376.0000 Epoch 36/1000 11/11 - 0s - 27ms/step - loss: 12590473216.0000 - val_loss: 11559872512.0000 Epoch 37/1000 11/11 - 0s - 28ms/step - loss: 12186595328.0000 - val_loss: 11104072704.0000 Epoch 38/1000 11/11 - 0s - 32ms/step - loss: 11882692608.0000 - val_loss: 11191547904.0000 Epoch 39/1000 11/11 - 0s - 23ms/step - loss: 11369713664.0000 - val_loss: 10693766144.0000 Epoch 40/1000 11/11 - 0s - 21ms/step - loss: 11232186368.0000 - val_loss: 11100065792.0000 Epoch 41/1000 11/11 - 0s - 26ms/step - loss: 11411860480.0000 - val_loss: 10294526976.0000 Epoch 42/1000 11/11 - 0s - 20ms/step - loss: 10739627008.0000 - val_loss: 11318057984.0000 Epoch 43/1000 11/11 - 0s - 26ms/step - loss: 10443568128.0000 - val_loss: 9930784768.0000 Epoch 44/1000 11/11 - 0s - 20ms/step - loss: 10073742336.0000 - val_loss: 10044209152.0000 Epoch 45/1000 11/11 - 0s - 20ms/step - loss: 10077907968.0000 - val_loss: 10291717120.0000 Epoch 46/1000 11/11 - 0s - 28ms/step - loss: 9593617408.0000 - val_loss: 9904843776.0000 Epoch 47/1000 11/11 - 0s - 21ms/step - loss: 9390256128.0000 - val_loss: 10713446400.0000 Epoch 48/1000 11/11 - 0s - 33ms/step - loss: 9830289408.0000 - val_loss: 9901130752.0000 Epoch 49/1000 11/11 - 0s - 21ms/step - loss: 9286518784.0000 - val_loss: 10039477248.0000 Epoch 50/1000 11/11 - 0s - 27ms/step - loss: 9138186240.0000 - val_loss: 9898916864.0000 Epoch 51/1000 11/11 - 0s - 20ms/step - loss: 8887951360.0000 - val_loss: 10158228480.0000 Epoch 52/1000 11/11 - 0s - 28ms/step - loss: 8956895232.0000 - val_loss: 10591331328.0000 Epoch 53/1000 11/11 - 0s - 28ms/step - loss: 8931240960.0000 - val_loss: 10424711168.0000 Epoch 54/1000 11/11 - 0s - 27ms/step - loss: 8963271680.0000 - val_loss: 10028475392.0000 Epoch 55/1000 11/11 - 0s - 21ms/step - loss: 8457361920.0000 - val_loss: 10017034240.0000 Epoch 56/1000 11/11 - 0s - 21ms/step - loss: 8451962880.0000 - val_loss: 10212073472.0000 Epoch 57/1000 11/11 - 0s - 20ms/step - loss: 8471023104.0000 - val_loss: 12063151104.0000 Epoch 58/1000 11/11 - 0s - 21ms/step - loss: 8442937344.0000 - val_loss: 10105838592.0000 Epoch 59/1000 11/11 - 0s - 27ms/step - loss: 8478894592.0000 - val_loss: 9849234432.0000 Epoch 60/1000 11/11 - 0s - 27ms/step - loss: 9200734208.0000 - val_loss: 9785556992.0000 Epoch 61/1000 11/11 - 0s - 21ms/step - loss: 9168292864.0000 - val_loss: 10081515520.0000 Epoch 62/1000 11/11 - 0s - 27ms/step - loss: 8481573888.0000 - val_loss: 9717085184.0000 Epoch 63/1000 11/11 - 0s - 22ms/step - loss: 8429221888.0000 - val_loss: 10046105600.0000 Epoch 64/1000 11/11 - 0s - 26ms/step - loss: 8104039936.0000 - val_loss: 10736132096.0000 Epoch 65/1000 11/11 - 0s - 27ms/step - loss: 9271658496.0000 - val_loss: 11251181568.0000 Epoch 66/1000 11/11 - 0s - 28ms/step - loss: 9128989696.0000 - val_loss: 11377344512.0000 Epoch 67/1000 11/11 - 0s - 20ms/step - loss: 8769547264.0000 - val_loss: 10608928768.0000 Epoch 68/1000 11/11 - 0s - 20ms/step - loss: 8186222080.0000 - val_loss: 9885089792.0000 Epoch 69/1000 11/11 - 0s - 21ms/step - loss: 7916572672.0000 - val_loss: 9906735104.0000 Epoch 70/1000 11/11 - 0s - 20ms/step - loss: 7720143360.0000 - val_loss: 10095616000.0000 Epoch 71/1000 11/11 - 0s - 21ms/step - loss: 7702813184.0000 - val_loss: 9923070976.0000 Epoch 72/1000 11/11 - 0s - 27ms/step - loss: 7873694208.0000 - val_loss: 9915001856.0000 Epoch 73/1000 11/11 - 0s - 26ms/step - loss: 7720011264.0000 - val_loss: 9960067072.0000 Epoch 74/1000 11/11 - 0s - 28ms/step - loss: 7641988608.0000 - val_loss: 10361395200.0000 Epoch 74: early stopping Run 3 Epoch 1/1000 11/11 - 9s - 863ms/step - loss: 268092915712.0000 - val_loss: 268400328704.0000 Epoch 2/1000 11/11 - 0s - 28ms/step - loss: 127854428160.0000 - val_loss: 46941380608.0000 Epoch 3/1000 11/11 - 0s - 22ms/step - loss: 60773019648.0000 - val_loss: 47995564032.0000 Epoch 4/1000 11/11 - 0s - 26ms/step - loss: 50402684928.0000 - val_loss: 47504678912.0000 Epoch 5/1000 11/11 - 0s - 21ms/step - loss: 46946058240.0000 - val_loss: 43064270848.0000 Epoch 6/1000 11/11 - 0s - 27ms/step - loss: 47755034624.0000 - val_loss: 50324955136.0000 Epoch 7/1000 11/11 - 0s - 27ms/step - loss: 48501358592.0000 - val_loss: 45844901888.0000 Epoch 8/1000 11/11 - 0s - 21ms/step - loss: 48037490688.0000 - val_loss: 43700715520.0000 Epoch 9/1000 11/11 - 0s - 27ms/step - loss: 46915813376.0000 - val_loss: 45237641216.0000 Epoch 10/1000 11/11 - 0s - 27ms/step - loss: 47303667712.0000 - val_loss: 46254108672.0000 Epoch 11/1000 11/11 - 0s - 21ms/step - loss: 45313527808.0000 - val_loss: 41656344576.0000 Epoch 12/1000 11/11 - 0s - 26ms/step - loss: 44532641792.0000 - val_loss: 40779378688.0000 Epoch 13/1000 11/11 - 0s - 21ms/step - loss: 42331242496.0000 - val_loss: 38089740288.0000 Epoch 14/1000 11/11 - 0s - 21ms/step - loss: 40285634560.0000 - val_loss: 35881259008.0000 Epoch 15/1000 11/11 - 0s - 21ms/step - loss: 39699415040.0000 - val_loss: 37072240640.0000 Epoch 16/1000 11/11 - 0s - 26ms/step - loss: 36303556608.0000 - val_loss: 37045194752.0000 Epoch 17/1000 11/11 - 0s - 28ms/step - loss: 34717388800.0000 - val_loss: 33722054656.0000 Epoch 18/1000 11/11 - 0s - 21ms/step - loss: 34074603520.0000 - val_loss: 34569322496.0000 Epoch 19/1000 11/11 - 0s - 26ms/step - loss: 34203435008.0000 - val_loss: 39258808320.0000 Epoch 20/1000 11/11 - 0s - 29ms/step - loss: 33312423936.0000 - val_loss: 30875664384.0000 Epoch 21/1000 11/11 - 0s - 24ms/step - loss: 31685040128.0000 - val_loss: 30821629952.0000 Epoch 22/1000 11/11 - 0s - 26ms/step - loss: 31485536256.0000 - val_loss: 33488105472.0000 Epoch 23/1000 11/11 - 0s - 28ms/step - loss: 27685079040.0000 - val_loss: 28216707072.0000 Epoch 24/1000 11/11 - 0s - 22ms/step - loss: 25532045312.0000 - val_loss: 25337348096.0000 Epoch 25/1000 11/11 - 0s - 27ms/step - loss: 23802853376.0000 - val_loss: 22714286080.0000 Epoch 26/1000 11/11 - 0s - 28ms/step - loss: 21137938432.0000 - val_loss: 20900470784.0000 Epoch 27/1000 11/11 - 0s - 23ms/step - loss: 18474278912.0000 - val_loss: 18421682176.0000 Epoch 28/1000 11/11 - 0s - 27ms/step - loss: 17574699008.0000 - val_loss: 16725166080.0000 Epoch 29/1000 11/11 - 0s - 24ms/step - loss: 15469488128.0000 - val_loss: 15429488640.0000 Epoch 30/1000 11/11 - 0s - 27ms/step - loss: 15203155968.0000 - val_loss: 15164461056.0000 Epoch 31/1000 11/11 - 0s - 24ms/step - loss: 15684504576.0000 - val_loss: 13553332224.0000 Epoch 32/1000 11/11 - 0s - 22ms/step - loss: 13584803840.0000 - val_loss: 15328420864.0000 Epoch 33/1000 11/11 - 0s - 27ms/step - loss: 15150929920.0000 - val_loss: 15301359616.0000 Epoch 34/1000 11/11 - 0s - 27ms/step - loss: 16393713664.0000 - val_loss: 12381244416.0000 Epoch 35/1000 11/11 - 0s - 21ms/step - loss: 14167842816.0000 - val_loss: 14684969984.0000 Epoch 36/1000 11/11 - 0s - 27ms/step - loss: 13267652608.0000 - val_loss: 11451168768.0000 Epoch 37/1000 11/11 - 0s - 20ms/step - loss: 11737360384.0000 - val_loss: 11105142784.0000 Epoch 38/1000 11/11 - 0s - 20ms/step - loss: 11460120576.0000 - val_loss: 11153727488.0000 Epoch 39/1000 11/11 - 0s - 20ms/step - loss: 11263817728.0000 - val_loss: 10795284480.0000 Epoch 40/1000 11/11 - 0s - 28ms/step - loss: 12043511808.0000 - val_loss: 15006258176.0000 Epoch 41/1000 11/11 - 0s - 20ms/step - loss: 11215549440.0000 - val_loss: 10803222528.0000 Epoch 42/1000 11/11 - 0s - 27ms/step - loss: 10819984384.0000 - val_loss: 10487068672.0000 Epoch 43/1000 11/11 - 0s - 27ms/step - loss: 10339501056.0000 - val_loss: 10026815488.0000 Epoch 44/1000 11/11 - 0s - 28ms/step - loss: 10092037120.0000 - val_loss: 9922017280.0000 Epoch 45/1000 11/11 - 0s - 21ms/step - loss: 10287849472.0000 - val_loss: 9953941504.0000 Epoch 46/1000 11/11 - 0s - 20ms/step - loss: 10820796416.0000 - val_loss: 11463135232.0000 Epoch 47/1000 11/11 - 0s - 20ms/step - loss: 9779210240.0000 - val_loss: 10180794368.0000 Epoch 48/1000 11/11 - 0s - 21ms/step - loss: 9803822080.0000 - val_loss: 9871713280.0000 Epoch 49/1000 11/11 - 0s - 21ms/step - loss: 9350083584.0000 - val_loss: 10407900160.0000 Epoch 50/1000 11/11 - 0s - 20ms/step - loss: 9551058944.0000 - val_loss: 9904770048.0000 Epoch 51/1000 11/11 - 0s - 21ms/step - loss: 10157510656.0000 - val_loss: 9963786240.0000 Epoch 52/1000 11/11 - 0s - 27ms/step - loss: 9489841152.0000 - val_loss: 9972634624.0000 Epoch 53/1000 11/11 - 0s - 26ms/step - loss: 9026240512.0000 - val_loss: 9750672384.0000 Epoch 54/1000 11/11 - 0s - 26ms/step - loss: 8913009664.0000 - val_loss: 9684064256.0000 Epoch 55/1000 11/11 - 0s - 27ms/step - loss: 8771359744.0000 - val_loss: 9595750400.0000 Epoch 56/1000 11/11 - 0s - 21ms/step - loss: 8764233728.0000 - val_loss: 10699923456.0000 Epoch 57/1000 11/11 - 0s - 27ms/step - loss: 9090740224.0000 - val_loss: 10707891200.0000 Epoch 58/1000 11/11 - 0s - 27ms/step - loss: 8883131392.0000 - val_loss: 9853745152.0000 Epoch 59/1000 11/11 - 0s - 20ms/step - loss: 8409378816.0000 - val_loss: 9619861504.0000 Epoch 60/1000 11/11 - 0s - 26ms/step - loss: 8260495872.0000 - val_loss: 9560406016.0000 Epoch 61/1000 11/11 - 0s - 27ms/step - loss: 8749483008.0000 - val_loss: 9440520192.0000 Epoch 62/1000 11/11 - 0s - 20ms/step - loss: 8397681664.0000 - val_loss: 9456204800.0000 Epoch 63/1000 11/11 - 0s - 20ms/step - loss: 8376188416.0000 - val_loss: 9590563840.0000 Epoch 64/1000 11/11 - 0s - 27ms/step - loss: 8111206912.0000 - val_loss: 9919833088.0000 Epoch 65/1000 11/11 - 0s - 21ms/step - loss: 8002386432.0000 - val_loss: 9539616768.0000 Epoch 66/1000 11/11 - 0s - 27ms/step - loss: 7925018624.0000 - val_loss: 9531191296.0000 Epoch 67/1000 11/11 - 0s - 20ms/step - loss: 8014470144.0000 - val_loss: 9784645632.0000 Epoch 68/1000 11/11 - 0s - 27ms/step - loss: 8066888704.0000 - val_loss: 9709014016.0000 Epoch 69/1000 11/11 - 0s - 21ms/step - loss: 8428279808.0000 - val_loss: 9576230912.0000 Epoch 70/1000 11/11 - 0s - 28ms/step - loss: 8258231808.0000 - val_loss: 10044994560.0000 Epoch 71/1000 11/11 - 0s - 27ms/step - loss: 8235362816.0000 - val_loss: 9497393152.0000 Epoch 72/1000 11/11 - 0s - 22ms/step - loss: 8218406912.0000 - val_loss: 9619438592.0000 Epoch 73/1000 11/11 - 0s - 32ms/step - loss: 7809679872.0000 - val_loss: 9389286400.0000 Epoch 74/1000 11/11 - 1s - 47ms/step - loss: 8789606400.0000 - val_loss: 9959842816.0000 Epoch 75/1000 11/11 - 0s - 24ms/step - loss: 7856222720.0000 - val_loss: 10462605312.0000 Epoch 76/1000 11/11 - 0s - 23ms/step - loss: 8090364928.0000 - val_loss: 9554671616.0000 Epoch 77/1000 11/11 - 0s - 28ms/step - loss: 7803509760.0000 - val_loss: 9492185088.0000 Epoch 78/1000 11/11 - 0s - 26ms/step - loss: 7625941504.0000 - val_loss: 9431655424.0000 Epoch 79/1000 11/11 - 0s - 23ms/step - loss: 7715689984.0000 - val_loss: 9660882944.0000 Epoch 80/1000 11/11 - 0s - 23ms/step - loss: 7428864000.0000 - val_loss: 9581800448.0000 Epoch 81/1000 11/11 - 0s - 24ms/step - loss: 7629045760.0000 - val_loss: 9952685056.0000 Epoch 82/1000 11/11 - 0s - 22ms/step - loss: 7637672448.0000 - val_loss: 10674445312.0000 Epoch 83/1000 11/11 - 0s - 27ms/step - loss: 7497033728.0000 - val_loss: 10859628544.0000 Epoch 84/1000 11/11 - 0s - 27ms/step - loss: 8466131456.0000 - val_loss: 10171200512.0000 Epoch 85/1000 11/11 - 0s - 21ms/step - loss: 7721816576.0000 - val_loss: 9534888960.0000 Epoch 85: early stopping Run 4 Epoch 1/1000 11/11 - 8s - 689ms/step - loss: 260881154048.0000 - val_loss: 216291721216.0000 Epoch 2/1000 11/11 - 0s - 28ms/step - loss: 100594745344.0000 - val_loss: 54959718400.0000 Epoch 3/1000 11/11 - 0s - 21ms/step - loss: 57962647552.0000 - val_loss: 43557421056.0000 Epoch 4/1000 11/11 - 0s - 27ms/step - loss: 47888011264.0000 - val_loss: 55641169920.0000 Epoch 5/1000 11/11 - 0s - 27ms/step - loss: 52362014720.0000 - val_loss: 43734110208.0000 Epoch 6/1000 11/11 - 0s - 30ms/step - loss: 50872541184.0000 - val_loss: 46022287360.0000 Epoch 7/1000 11/11 - 0s - 26ms/step - loss: 47377383424.0000 - val_loss: 47046483968.0000 Epoch 8/1000 11/11 - 0s - 23ms/step - loss: 47297847296.0000 - val_loss: 49118748672.0000 Epoch 9/1000 11/11 - 0s - 22ms/step - loss: 49192132608.0000 - val_loss: 45782040576.0000 Epoch 10/1000 11/11 - 0s - 22ms/step - loss: 49124671488.0000 - val_loss: 42351013888.0000 Epoch 11/1000 11/11 - 0s - 23ms/step - loss: 46687657984.0000 - val_loss: 41147281408.0000 Epoch 12/1000 11/11 - 0s - 27ms/step - loss: 45779943424.0000 - val_loss: 49044303872.0000 Epoch 13/1000 11/11 - 0s - 23ms/step - loss: 43081125888.0000 - val_loss: 44489457664.0000 Epoch 14/1000 11/11 - 0s - 24ms/step - loss: 41237950464.0000 - val_loss: 35622141952.0000 Epoch 15/1000 11/11 - 0s - 27ms/step - loss: 36610789376.0000 - val_loss: 37970063360.0000 Epoch 16/1000 11/11 - 0s - 23ms/step - loss: 35800375296.0000 - val_loss: 34200064000.0000 Epoch 17/1000 11/11 - 0s - 27ms/step - loss: 34585591808.0000 - val_loss: 38287417344.0000 Epoch 18/1000 11/11 - 0s - 28ms/step - loss: 34258968576.0000 - val_loss: 34896502784.0000 Epoch 19/1000 11/11 - 0s - 23ms/step - loss: 33079857152.0000 - val_loss: 33920497664.0000 Epoch 20/1000 11/11 - 0s - 21ms/step - loss: 33344856064.0000 - val_loss: 31253299200.0000 Epoch 21/1000 11/11 - 0s - 21ms/step - loss: 30107688960.0000 - val_loss: 30495016960.0000 Epoch 22/1000 11/11 - 0s - 20ms/step - loss: 28185049088.0000 - val_loss: 30559760384.0000 Epoch 23/1000 11/11 - 0s - 21ms/step - loss: 26916306944.0000 - val_loss: 26902634496.0000 Epoch 24/1000 11/11 - 0s - 27ms/step - loss: 25070747648.0000 - val_loss: 24641986560.0000 Epoch 25/1000 11/11 - 0s - 27ms/step - loss: 22737641472.0000 - val_loss: 23689697280.0000 Epoch 26/1000 11/11 - 0s - 27ms/step - loss: 21379293184.0000 - val_loss: 23940390912.0000 Epoch 27/1000 11/11 - 0s - 20ms/step - loss: 19866318848.0000 - val_loss: 17988902912.0000 Epoch 28/1000 11/11 - 0s - 27ms/step - loss: 17874358272.0000 - val_loss: 16592540672.0000 Epoch 29/1000 11/11 - 0s - 21ms/step - loss: 15965877248.0000 - val_loss: 15931141120.0000 Epoch 30/1000 11/11 - 0s - 21ms/step - loss: 15518939136.0000 - val_loss: 13806148608.0000 Epoch 31/1000 11/11 - 0s - 28ms/step - loss: 14396275712.0000 - val_loss: 13739876352.0000 Epoch 32/1000 11/11 - 0s - 21ms/step - loss: 13804881920.0000 - val_loss: 12368251904.0000 Epoch 33/1000 11/11 - 0s - 21ms/step - loss: 13096493056.0000 - val_loss: 13225853952.0000 Epoch 34/1000 11/11 - 0s - 27ms/step - loss: 13593682944.0000 - val_loss: 11642205184.0000 Epoch 35/1000 11/11 - 0s - 20ms/step - loss: 12659339264.0000 - val_loss: 11339800576.0000 Epoch 36/1000 11/11 - 0s - 20ms/step - loss: 12218050560.0000 - val_loss: 11724711936.0000 Epoch 37/1000 11/11 - 0s - 21ms/step - loss: 11837631488.0000 - val_loss: 10999783424.0000 Epoch 38/1000 11/11 - 0s - 27ms/step - loss: 11369031680.0000 - val_loss: 10667195392.0000 Epoch 39/1000 11/11 - 0s - 27ms/step - loss: 11174235136.0000 - val_loss: 11303018496.0000 Epoch 40/1000 11/11 - 0s - 28ms/step - loss: 11394164736.0000 - val_loss: 10229036032.0000 Epoch 41/1000 11/11 - 0s - 27ms/step - loss: 10736654336.0000 - val_loss: 10375907328.0000 Epoch 42/1000 11/11 - 0s - 21ms/step - loss: 10549659648.0000 - val_loss: 10649748480.0000 Epoch 43/1000 11/11 - 0s - 20ms/step - loss: 10396948480.0000 - val_loss: 10242446336.0000 Epoch 44/1000 11/11 - 0s - 28ms/step - loss: 10924205056.0000 - val_loss: 10389179392.0000 Epoch 45/1000 11/11 - 0s - 21ms/step - loss: 10817513472.0000 - val_loss: 10753281024.0000 Epoch 46/1000 11/11 - 0s - 20ms/step - loss: 9810915328.0000 - val_loss: 9847748608.0000 Epoch 47/1000 11/11 - 0s - 20ms/step - loss: 9945701376.0000 - val_loss: 9963199488.0000 Epoch 48/1000 11/11 - 0s - 20ms/step - loss: 9631454208.0000 - val_loss: 9883752448.0000 Epoch 49/1000 11/11 - 0s - 28ms/step - loss: 9487415296.0000 - val_loss: 10239935488.0000 Epoch 50/1000 11/11 - 0s - 20ms/step - loss: 9416366080.0000 - val_loss: 10039240704.0000 Epoch 51/1000 11/11 - 0s - 27ms/step - loss: 9413936128.0000 - val_loss: 10039982080.0000 Epoch 52/1000 11/11 - 0s - 21ms/step - loss: 9036206080.0000 - val_loss: 10678897664.0000 Epoch 53/1000 11/11 - 0s - 22ms/step - loss: 9137463296.0000 - val_loss: 10339527680.0000 Epoch 54/1000 11/11 - 0s - 20ms/step - loss: 8926526464.0000 - val_loss: 10176991232.0000 Epoch 55/1000 11/11 - 0s - 20ms/step - loss: 9102442496.0000 - val_loss: 10358497280.0000 Epoch 56/1000 11/11 - 0s - 28ms/step - loss: 9201969152.0000 - val_loss: 10650563584.0000 Epoch 57/1000 11/11 - 0s - 26ms/step - loss: 8798551040.0000 - val_loss: 10668664832.0000 Epoch 58/1000 11/11 - 0s - 29ms/step - loss: 8669476864.0000 - val_loss: 9853111296.0000 Epoch 58: early stopping Run 5 Epoch 1/1000 11/11 - 8s - 771ms/step - loss: 273315479552.0000 - val_loss: 316897591296.0000 Epoch 2/1000 11/11 - 0s - 26ms/step - loss: 253154230272.0000 - val_loss: 210632736768.0000 Epoch 3/1000 11/11 - 0s - 22ms/step - loss: 103050330112.0000 - val_loss: 43344068608.0000 Epoch 4/1000 11/11 - 0s - 27ms/step - loss: 56234921984.0000 - val_loss: 55373357056.0000 Epoch 5/1000 11/11 - 0s - 27ms/step - loss: 48540504064.0000 - val_loss: 43562127360.0000 Epoch 6/1000 11/11 - 0s - 27ms/step - loss: 47259693056.0000 - val_loss: 46089293824.0000 Epoch 7/1000 11/11 - 0s - 27ms/step - loss: 47383588864.0000 - val_loss: 45823438848.0000 Epoch 8/1000 11/11 - 0s - 27ms/step - loss: 47314374656.0000 - val_loss: 44298014720.0000 Epoch 9/1000 11/11 - 0s - 27ms/step - loss: 46605721600.0000 - val_loss: 48352362496.0000 Epoch 10/1000 11/11 - 0s - 20ms/step - loss: 48114651136.0000 - val_loss: 42310053888.0000 Epoch 11/1000 11/11 - 0s - 27ms/step - loss: 46184677376.0000 - val_loss: 45149995008.0000 Epoch 12/1000 11/11 - 0s - 20ms/step - loss: 45199507456.0000 - val_loss: 44171599872.0000 Epoch 13/1000 11/11 - 0s - 20ms/step - loss: 43599966208.0000 - val_loss: 40693596160.0000 Epoch 14/1000 11/11 - 0s - 28ms/step - loss: 42296688640.0000 - val_loss: 36366184448.0000 Epoch 15/1000 11/11 - 0s - 21ms/step - loss: 37672013824.0000 - val_loss: 39401017344.0000 Epoch 16/1000 11/11 - 0s - 20ms/step - loss: 37000003584.0000 - val_loss: 34337277952.0000 Epoch 17/1000 11/11 - 0s - 27ms/step - loss: 34808844288.0000 - val_loss: 34486870016.0000 Epoch 18/1000 11/11 - 0s - 29ms/step - loss: 34718433280.0000 - val_loss: 39344590848.0000 Epoch 19/1000 11/11 - 0s - 26ms/step - loss: 33889425408.0000 - val_loss: 33192523776.0000 Epoch 20/1000 11/11 - 0s - 22ms/step - loss: 33314033664.0000 - val_loss: 34782687232.0000 Epoch 21/1000 11/11 - 0s - 23ms/step - loss: 31142322176.0000 - val_loss: 29391751168.0000 Epoch 22/1000 11/11 - 0s - 23ms/step - loss: 29712277504.0000 - val_loss: 28268625920.0000 Epoch 23/1000 11/11 - 0s - 22ms/step - loss: 27656749056.0000 - val_loss: 28523593728.0000 Epoch 24/1000 11/11 - 0s - 22ms/step - loss: 25411506176.0000 - val_loss: 25640155136.0000 Epoch 25/1000 11/11 - 0s - 24ms/step - loss: 23558918144.0000 - val_loss: 25390348288.0000 Epoch 26/1000 11/11 - 0s - 24ms/step - loss: 22926733312.0000 - val_loss: 21253406720.0000 Epoch 27/1000 11/11 - 0s - 27ms/step - loss: 20283064320.0000 - val_loss: 21296322560.0000 Epoch 28/1000 11/11 - 0s - 24ms/step - loss: 18207135744.0000 - val_loss: 17224275968.0000 Epoch 29/1000 11/11 - 0s - 27ms/step - loss: 16617090048.0000 - val_loss: 16221270016.0000 Epoch 30/1000 11/11 - 0s - 27ms/step - loss: 15715513344.0000 - val_loss: 14485878784.0000 Epoch 31/1000 11/11 - 0s - 21ms/step - loss: 15071049728.0000 - val_loss: 13152035840.0000 Epoch 32/1000 11/11 - 0s - 27ms/step - loss: 14401320960.0000 - val_loss: 13395922944.0000 Epoch 33/1000 11/11 - 0s - 27ms/step - loss: 13398255616.0000 - val_loss: 11743373312.0000 Epoch 34/1000 11/11 - 0s - 27ms/step - loss: 12977217536.0000 - val_loss: 12084133888.0000 Epoch 35/1000 11/11 - 0s - 20ms/step - loss: 12616344576.0000 - val_loss: 11044146176.0000 Epoch 36/1000 11/11 - 0s - 20ms/step - loss: 12436725760.0000 - val_loss: 11709318144.0000 Epoch 37/1000 11/11 - 0s - 21ms/step - loss: 12430523392.0000 - val_loss: 10859594752.0000 Epoch 38/1000 11/11 - 0s - 20ms/step - loss: 11898344448.0000 - val_loss: 12121486336.0000 Epoch 39/1000 11/11 - 0s - 27ms/step - loss: 12825503744.0000 - val_loss: 10684230656.0000 Epoch 40/1000 11/11 - 0s - 28ms/step - loss: 12508416000.0000 - val_loss: 11115001856.0000 Epoch 41/1000 11/11 - 0s - 27ms/step - loss: 11302900736.0000 - val_loss: 10361228288.0000 Epoch 42/1000 11/11 - 0s - 21ms/step - loss: 10999954432.0000 - val_loss: 10493672448.0000 Epoch 43/1000 11/11 - 0s - 27ms/step - loss: 10883463168.0000 - val_loss: 10291694592.0000 Epoch 44/1000 11/11 - 0s - 27ms/step - loss: 10654239744.0000 - val_loss: 10190036992.0000 Epoch 45/1000 11/11 - 0s - 21ms/step - loss: 10454597632.0000 - val_loss: 10520812544.0000 Epoch 46/1000 11/11 - 0s - 26ms/step - loss: 10315413504.0000 - val_loss: 10221582336.0000 Epoch 47/1000 11/11 - 0s - 21ms/step - loss: 10314905600.0000 - val_loss: 10129583104.0000 Epoch 48/1000 11/11 - 0s - 27ms/step - loss: 10151404544.0000 - val_loss: 10236366848.0000 Epoch 49/1000 11/11 - 0s - 20ms/step - loss: 10045820928.0000 - val_loss: 10404468736.0000 Epoch 50/1000 11/11 - 0s - 20ms/step - loss: 10154970112.0000 - val_loss: 9937872896.0000 Epoch 51/1000 11/11 - 0s - 28ms/step - loss: 9747815424.0000 - val_loss: 10181926912.0000 Epoch 52/1000 11/11 - 0s - 27ms/step - loss: 9760124928.0000 - val_loss: 9852771328.0000 Epoch 53/1000 11/11 - 0s - 20ms/step - loss: 9631047680.0000 - val_loss: 9948894208.0000 Epoch 54/1000 11/11 - 0s - 28ms/step - loss: 9407104000.0000 - val_loss: 9984546816.0000 Epoch 55/1000 11/11 - 0s - 27ms/step - loss: 9357023232.0000 - val_loss: 10108043264.0000 Epoch 56/1000 11/11 - 0s - 27ms/step - loss: 9654918144.0000 - val_loss: 10570314752.0000 Epoch 57/1000 11/11 - 0s - 26ms/step - loss: 9330406400.0000 - val_loss: 9827289088.0000 Epoch 58/1000 11/11 - 0s - 21ms/step - loss: 9007899648.0000 - val_loss: 10432338944.0000 Epoch 59/1000 11/11 - 0s - 27ms/step - loss: 9629406208.0000 - val_loss: 10533788672.0000 Epoch 60/1000 11/11 - 0s - 27ms/step - loss: 9522230272.0000 - val_loss: 10817681408.0000 Epoch 61/1000 11/11 - 0s - 27ms/step - loss: 8994243584.0000 - val_loss: 10031371264.0000 Epoch 62/1000 11/11 - 0s - 20ms/step - loss: 8855693312.0000 - val_loss: 10770260992.0000 Epoch 63/1000 11/11 - 0s - 27ms/step - loss: 9000203264.0000 - val_loss: 9869681664.0000 Epoch 64/1000 11/11 - 0s - 20ms/step - loss: 9015709696.0000 - val_loss: 9953930240.0000 Epoch 65/1000 11/11 - 0s - 27ms/step - loss: 8702980096.0000 - val_loss: 9902608384.0000 Epoch 66/1000 11/11 - 0s - 21ms/step - loss: 8507173888.0000 - val_loss: 9934337024.0000 Epoch 67/1000 11/11 - 0s - 28ms/step - loss: 9123599360.0000 - val_loss: 10618095616.0000 Epoch 68/1000 11/11 - 0s - 27ms/step - loss: 8750243840.0000 - val_loss: 9688951808.0000 Epoch 69/1000 11/11 - 0s - 28ms/step - loss: 8457624064.0000 - val_loss: 9847475200.0000 Epoch 70/1000 11/11 - 0s - 23ms/step - loss: 8430509056.0000 - val_loss: 9959937024.0000 Epoch 71/1000 11/11 - 0s - 23ms/step - loss: 8060010496.0000 - val_loss: 9672370176.0000 Epoch 72/1000 11/11 - 0s - 22ms/step - loss: 8481714176.0000 - val_loss: 9644879872.0000 Epoch 73/1000 11/11 - 0s - 29ms/step - loss: 8082108416.0000 - val_loss: 10045622272.0000 Epoch 74/1000 11/11 - 0s - 23ms/step - loss: 8124358656.0000 - val_loss: 9965344768.0000 Epoch 75/1000 11/11 - 0s - 23ms/step - loss: 8029687808.0000 - val_loss: 9852009472.0000 Epoch 76/1000 11/11 - 0s - 24ms/step - loss: 7954547712.0000 - val_loss: 10036699136.0000 Epoch 77/1000 11/11 - 0s - 27ms/step - loss: 7765424640.0000 - val_loss: 10137728000.0000 Epoch 78/1000 11/11 - 0s - 30ms/step - loss: 8240708608.0000 - val_loss: 10004542464.0000 Epoch 79/1000 11/11 - 0s - 24ms/step - loss: 7565928960.0000 - val_loss: 10459736064.0000 Epoch 80/1000 11/11 - 0s - 26ms/step - loss: 7708740096.0000 - val_loss: 10965586944.0000 Epoch 81/1000 11/11 - 0s - 20ms/step - loss: 7539841536.0000 - val_loss: 10255599616.0000 Epoch 82/1000 11/11 - 0s - 27ms/step - loss: 7561065472.0000 - val_loss: 11214482432.0000 Epoch 83/1000 11/11 - 0s - 21ms/step - loss: 7507389952.0000 - val_loss: 10567151616.0000 Epoch 84/1000 11/11 - 0s - 27ms/step - loss: 7130058752.0000 - val_loss: 10398894080.0000 Epoch 84: early stopping Runs complete, saving model
print(relu_model.summary())
Model: "functional_14"
┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ Layer (type) ┃ Output Shape ┃ Param # ┃ Connected to ┃ ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━┩ │ input_layer_29 │ (None, 128, 128, 3) │ 0 │ - │ │ (InputLayer) │ │ │ │ ├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤ │ conv2d_42 (Conv2D) │ (None, 125, 125, 64) │ 3,136 │ input_layer_29[0][0] │ ├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤ │ input_layer_28 │ (None, 43) │ 0 │ - │ │ (InputLayer) │ │ │ │ ├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤ │ max_pooling2d_42 │ (None, 62, 62, 64) │ 0 │ conv2d_42[0][0] │ │ (MaxPooling2D) │ │ │ │ ├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤ │ flatten_28 (Flatten) │ (None, 43) │ 0 │ input_layer_28[0][0] │ ├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤ │ conv2d_43 (Conv2D) │ (None, 59, 59, 32) │ 32,800 │ max_pooling2d_42[0][0] │ ├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤ │ dense_112 (Dense) │ (None, 256) │ 11,264 │ flatten_28[0][0] │ ├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤ │ max_pooling2d_43 │ (None, 29, 29, 32) │ 0 │ conv2d_43[0][0] │ │ (MaxPooling2D) │ │ │ │ ├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤ │ dense_113 (Dense) │ (None, 128) │ 32,896 │ dense_112[0][0] │ ├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤ │ conv2d_44 (Conv2D) │ (None, 26, 26, 16) │ 8,208 │ max_pooling2d_43[0][0] │ ├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤ │ dense_114 (Dense) │ (None, 64) │ 8,256 │ dense_113[0][0] │ ├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤ │ max_pooling2d_44 │ (None, 13, 13, 16) │ 0 │ conv2d_44[0][0] │ │ (MaxPooling2D) │ │ │ │ ├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤ │ dense_115 (Dense) │ (None, 25) │ 1,625 │ dense_114[0][0] │ ├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤ │ flatten_29 (Flatten) │ (None, 2704) │ 0 │ max_pooling2d_44[0][0] │ ├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤ │ concatenate_14 │ (None, 2729) │ 0 │ dense_115[0][0], │ │ (Concatenate) │ │ │ flatten_29[0][0] │ ├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤ │ dense_116 (Dense) │ (None, 50) │ 136,500 │ concatenate_14[0][0] │ ├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤ │ dense_117 (Dense) │ (None, 30) │ 1,530 │ dense_116[0][0] │ ├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤ │ dense_118 (Dense) │ (None, 15) │ 465 │ dense_117[0][0] │ ├───────────────────────────┼────────────────────────┼────────────────┼────────────────────────┤ │ dense_119 (Dense) │ (None, 1) │ 16 │ dense_118[0][0] │ └───────────────────────────┴────────────────────────┴────────────────┴────────────────────────┘
Total params: 710,090 (2.71 MB)
Trainable params: 236,696 (924.59 KB)
Non-trainable params: 0 (0.00 B)
Optimizer params: 473,394 (1.81 MB)
None
# Make predictions on the test set
y_pred = relu_model.predict([x_test, x_test_image])
# Calculate RMSE
rmse = np.sqrt(mean_squared_error(y_test, y_pred))
print(f"\nRoot Mean Squared Error (RMSE): {rmse:.2f}")
3/3 ━━━━━━━━━━━━━━━━━━━━ 1s 140ms/step Root Mean Squared Error (RMSE): 96898.33
chart_regression(y_pred.flatten(), y_test, sort= True)
from keras.applications import VGG16
from keras.models import Model
from keras.layers import Input, Dense, Flatten, concatenate, GlobalAveragePooling2D
from keras.callbacks import ModelCheckpoint, EarlyStopping
checkpointer = ModelCheckpoint(filepath=os.path.join(saved_path, "vgg16_model.keras"), verbose=0, save_best_only=True)
# Load VGG16 model with pre-trained weights
vgg16_base = VGG16(weights='imagenet', include_top=False, input_shape=(128, 128, 3))
# Freeze VGG16 layers to prevent training
for layer in vgg16_base.layers:
layer.trainable = False
# Add custom layers on top of VGG16
vgg16_output = vgg16_base.output
vgg16_output = GlobalAveragePooling2D()(vgg16_output) # Add global average pooling
input_text = Input(shape=(43,))
flat_text = Flatten()(input_text)
dense_text1 = Dense(256, activation='relu')(flat_text)
dense_text2 = Dense(128, activation='relu')(dense_text1)
dense_text3 = Dense(64, activation='relu')(dense_text2)
text_model = Dense(25, activation='relu')(dense_text3)
# Concatenate VGG16 output with the text-based model
merge = concatenate([vgg16_output, text_model])
hidden1 = Dense(50, activation='relu')(merge)
hidden2 = Dense(30, activation='relu')(hidden1)
hidden3 = Dense(15, activation='relu')(hidden2)
output = Dense(1, activation='linear')(hidden3)
vgg16_model = Model(inputs=[input_text, vgg16_base.input], outputs=output)
vgg16_model.compile(optimizer='adam', loss='mean_squared_error')
checkpointer = ModelCheckpoint(filepath=os.path.join(saved_path, "vgg16_model.keras"), verbose=0, save_best_only=True)
monitor = EarlyStopping(monitor='val_loss', min_delta=1e-3, patience=12, verbose=1, mode='auto')
vgg16_model.fit([x_train, x_train_image], y_train, validation_data=([x_test, x_test_image], y_test), callbacks=[monitor, checkpointer], verbose=2, epochs=1000)
print('\nComplete, saving model')
vgg16_model.load_weights(os.path.join(saved_path, "vgg16_model.keras"))
Epoch 1/1000 11/11 - 8s - 767ms/step - loss: 273531322368.0000 - val_loss: 319340871680.0000 Epoch 2/1000 11/11 - 1s - 92ms/step - loss: 273490427904.0000 - val_loss: 319269765120.0000 Epoch 3/1000 11/11 - 1s - 107ms/step - loss: 273401151488.0000 - val_loss: 319104417792.0000 Epoch 4/1000 11/11 - 1s - 114ms/step - loss: 273198743552.0000 - val_loss: 318746427392.0000 Epoch 5/1000 11/11 - 1s - 82ms/step - loss: 272738353152.0000 - val_loss: 317894721536.0000 Epoch 6/1000 11/11 - 1s - 78ms/step - loss: 271611625472.0000 - val_loss: 315615150080.0000 Epoch 7/1000 11/11 - 4s - 378ms/step - loss: 268384763904.0000 - val_loss: 308996341760.0000 Epoch 8/1000 11/11 - 2s - 191ms/step - loss: 259082076160.0000 - val_loss: 289926873088.0000 Epoch 9/1000 11/11 - 1s - 102ms/step - loss: 233015672832.0000 - val_loss: 240411246592.0000 Epoch 10/1000 11/11 - 1s - 102ms/step - loss: 173819199488.0000 - val_loss: 139870797824.0000 Epoch 11/1000 11/11 - 1s - 77ms/step - loss: 84743872512.0000 - val_loss: 52144922624.0000 Epoch 12/1000 11/11 - 5s - 444ms/step - loss: 58334990336.0000 - val_loss: 47946231808.0000 Epoch 13/1000 11/11 - 1s - 86ms/step - loss: 47805997056.0000 - val_loss: 45659512832.0000 Epoch 14/1000 11/11 - 1s - 109ms/step - loss: 43663867904.0000 - val_loss: 39983005696.0000 Epoch 15/1000 11/11 - 2s - 175ms/step - loss: 38950010880.0000 - val_loss: 34690662400.0000 Epoch 16/1000 11/11 - 1s - 100ms/step - loss: 35224596480.0000 - val_loss: 32739397632.0000 Epoch 17/1000 11/11 - 1s - 120ms/step - loss: 32926793728.0000 - val_loss: 31280644096.0000 Epoch 18/1000 11/11 - 6s - 520ms/step - loss: 29701574656.0000 - val_loss: 27449765888.0000 Epoch 19/1000 11/11 - 6s - 516ms/step - loss: 28397144064.0000 - val_loss: 25555705856.0000 Epoch 20/1000 11/11 - 1s - 55ms/step - loss: 26400950272.0000 - val_loss: 25765451776.0000 Epoch 21/1000 11/11 - 1s - 106ms/step - loss: 24831991808.0000 - val_loss: 22555856896.0000 Epoch 22/1000 11/11 - 1s - 97ms/step - loss: 23288633344.0000 - val_loss: 22254985216.0000 Epoch 23/1000 11/11 - 1s - 92ms/step - loss: 22239907840.0000 - val_loss: 19724306432.0000 Epoch 24/1000 11/11 - 1s - 68ms/step - loss: 21010059264.0000 - val_loss: 19761850368.0000 Epoch 25/1000 11/11 - 1s - 94ms/step - loss: 19891752960.0000 - val_loss: 17487806464.0000 Epoch 26/1000 11/11 - 1s - 125ms/step - loss: 19769317376.0000 - val_loss: 16454932480.0000 Epoch 27/1000 11/11 - 1s - 66ms/step - loss: 18105065472.0000 - val_loss: 16923062272.0000 Epoch 28/1000 11/11 - 1s - 56ms/step - loss: 17604845568.0000 - val_loss: 16497246208.0000 Epoch 29/1000 11/11 - 1s - 89ms/step - loss: 16938425344.0000 - val_loss: 14989824000.0000 Epoch 30/1000 11/11 - 1s - 131ms/step - loss: 16347129856.0000 - val_loss: 13883162624.0000 Epoch 31/1000 11/11 - 1s - 66ms/step - loss: 16000985088.0000 - val_loss: 14501585920.0000 Epoch 32/1000 11/11 - 1s - 98ms/step - loss: 15300487168.0000 - val_loss: 13107907584.0000 Epoch 33/1000 11/11 - 1s - 110ms/step - loss: 15088741376.0000 - val_loss: 12869346304.0000 Epoch 34/1000 11/11 - 1s - 52ms/step - loss: 14706304000.0000 - val_loss: 13155562496.0000 Epoch 35/1000 11/11 - 1s - 58ms/step - loss: 14549078016.0000 - val_loss: 13211688960.0000 Epoch 36/1000 11/11 - 1s - 105ms/step - loss: 14245799936.0000 - val_loss: 12290546688.0000 Epoch 37/1000 11/11 - 1s - 96ms/step - loss: 13914559488.0000 - val_loss: 12175244288.0000 Epoch 38/1000 11/11 - 1s - 97ms/step - loss: 13719222272.0000 - val_loss: 11931735040.0000 Epoch 39/1000 11/11 - 7s - 614ms/step - loss: 13618040832.0000 - val_loss: 11534423040.0000 Epoch 40/1000 11/11 - 5s - 441ms/step - loss: 13412687872.0000 - val_loss: 11505906688.0000 Epoch 41/1000 11/11 - 1s - 103ms/step - loss: 13223200768.0000 - val_loss: 11494139904.0000 Epoch 42/1000 11/11 - 1s - 82ms/step - loss: 13204144128.0000 - val_loss: 11450593280.0000 Epoch 43/1000 11/11 - 5s - 494ms/step - loss: 12952382464.0000 - val_loss: 11360463872.0000 Epoch 44/1000 11/11 - 1s - 91ms/step - loss: 12829814784.0000 - val_loss: 11062692864.0000 Epoch 45/1000 11/11 - 1s - 90ms/step - loss: 12726158336.0000 - val_loss: 10802160640.0000 Epoch 46/1000 11/11 - 1s - 51ms/step - loss: 12627982336.0000 - val_loss: 10905986048.0000 Epoch 47/1000 11/11 - 1s - 52ms/step - loss: 12576425984.0000 - val_loss: 11198607360.0000 Epoch 48/1000 11/11 - 1s - 52ms/step - loss: 12554220544.0000 - val_loss: 11083004928.0000 Epoch 49/1000 11/11 - 1s - 48ms/step - loss: 12484625408.0000 - val_loss: 10882651136.0000 Epoch 50/1000 11/11 - 1s - 112ms/step - loss: 12295468032.0000 - val_loss: 10799078400.0000 Epoch 51/1000 11/11 - 1s - 100ms/step - loss: 12212790272.0000 - val_loss: 10769956864.0000 Epoch 52/1000 11/11 - 1s - 79ms/step - loss: 12279205888.0000 - val_loss: 10728002560.0000 Epoch 53/1000 11/11 - 1s - 50ms/step - loss: 12288838656.0000 - val_loss: 11083961344.0000 Epoch 54/1000 11/11 - 1s - 86ms/step - loss: 12081275904.0000 - val_loss: 10563915776.0000 Epoch 55/1000 11/11 - 5s - 483ms/step - loss: 11996198912.0000 - val_loss: 10491016192.0000 Epoch 56/1000 11/11 - 5s - 499ms/step - loss: 11909587968.0000 - val_loss: 10786310144.0000 Epoch 57/1000 11/11 - 1s - 46ms/step - loss: 11892495360.0000 - val_loss: 10862784512.0000 Epoch 58/1000 11/11 - 1s - 46ms/step - loss: 11834821632.0000 - val_loss: 10714628096.0000 Epoch 59/1000 11/11 - 1s - 76ms/step - loss: 11741768704.0000 - val_loss: 10472631296.0000 Epoch 60/1000 11/11 - 1s - 50ms/step - loss: 11764841472.0000 - val_loss: 10526589952.0000 Epoch 61/1000 11/11 - 0s - 45ms/step - loss: 11949022208.0000 - val_loss: 10816032768.0000 Epoch 62/1000 11/11 - 1s - 80ms/step - loss: 11697793024.0000 - val_loss: 10443331584.0000 Epoch 63/1000 11/11 - 1s - 50ms/step - loss: 11697062912.0000 - val_loss: 10664573952.0000 Epoch 64/1000 11/11 - 1s - 56ms/step - loss: 11552008192.0000 - val_loss: 10630918144.0000 Epoch 65/1000 11/11 - 1s - 52ms/step - loss: 11611678720.0000 - val_loss: 10605125632.0000 Epoch 66/1000 11/11 - 1s - 85ms/step - loss: 11530289152.0000 - val_loss: 10407739392.0000 Epoch 67/1000 11/11 - 1s - 47ms/step - loss: 11447139328.0000 - val_loss: 10544486400.0000 Epoch 68/1000 11/11 - 1s - 56ms/step - loss: 11378215936.0000 - val_loss: 10423535616.0000 Epoch 69/1000 11/11 - 1s - 51ms/step - loss: 11365143552.0000 - val_loss: 10756792320.0000 Epoch 70/1000 11/11 - 1s - 52ms/step - loss: 11518464000.0000 - val_loss: 10441686016.0000 Epoch 71/1000 11/11 - 1s - 97ms/step - loss: 11971278848.0000 - val_loss: 10328607744.0000 Epoch 72/1000 11/11 - 1s - 53ms/step - loss: 11493888000.0000 - val_loss: 10891899904.0000 Epoch 73/1000 11/11 - 1s - 101ms/step - loss: 11480771584.0000 - val_loss: 10279374848.0000 Epoch 74/1000 11/11 - 1s - 64ms/step - loss: 11263482880.0000 - val_loss: 10627367936.0000 Epoch 75/1000 11/11 - 1s - 110ms/step - loss: 11280115712.0000 - val_loss: 10227986432.0000 Epoch 76/1000 11/11 - 1s - 61ms/step - loss: 11265191936.0000 - val_loss: 10304346112.0000 Epoch 77/1000 11/11 - 1s - 46ms/step - loss: 11309159424.0000 - val_loss: 10442195968.0000 Epoch 78/1000 11/11 - 1s - 51ms/step - loss: 11989437440.0000 - val_loss: 11419660288.0000 Epoch 79/1000 11/11 - 1s - 83ms/step - loss: 11476726784.0000 - val_loss: 10189661184.0000 Epoch 80/1000 11/11 - 1s - 46ms/step - loss: 11379556352.0000 - val_loss: 10516487168.0000 Epoch 81/1000 11/11 - 1s - 47ms/step - loss: 11194258432.0000 - val_loss: 10249690112.0000 Epoch 82/1000 11/11 - 1s - 50ms/step - loss: 11172307968.0000 - val_loss: 10567200768.0000 Epoch 83/1000 11/11 - 1s - 52ms/step - loss: 11270579200.0000 - val_loss: 10387309568.0000 Epoch 84/1000 11/11 - 1s - 57ms/step - loss: 11306960896.0000 - val_loss: 10584027136.0000 Epoch 85/1000 11/11 - 1s - 80ms/step - loss: 11009538048.0000 - val_loss: 10069477376.0000 Epoch 86/1000 11/11 - 1s - 47ms/step - loss: 11215682560.0000 - val_loss: 10524016640.0000 Epoch 87/1000 11/11 - 1s - 60ms/step - loss: 11332177920.0000 - val_loss: 10493115392.0000 Epoch 88/1000 11/11 - 1s - 53ms/step - loss: 10916478976.0000 - val_loss: 10329788416.0000 Epoch 89/1000 11/11 - 1s - 49ms/step - loss: 11071591424.0000 - val_loss: 10382103552.0000 Epoch 90/1000 11/11 - 1s - 59ms/step - loss: 10961395712.0000 - val_loss: 10506971136.0000 Epoch 91/1000 11/11 - 1s - 53ms/step - loss: 10944715776.0000 - val_loss: 10458960896.0000 Epoch 92/1000 11/11 - 1s - 58ms/step - loss: 10902838272.0000 - val_loss: 10349320192.0000 Epoch 93/1000 11/11 - 1s - 53ms/step - loss: 10907577344.0000 - val_loss: 10697017344.0000 Epoch 94/1000 11/11 - 1s - 49ms/step - loss: 11006954496.0000 - val_loss: 10471915520.0000 Epoch 95/1000 11/11 - 1s - 58ms/step - loss: 11125342208.0000 - val_loss: 10554653696.0000 Epoch 96/1000 11/11 - 1s - 47ms/step - loss: 10849069056.0000 - val_loss: 10544370688.0000 Epoch 97/1000 11/11 - 1s - 51ms/step - loss: 10762668032.0000 - val_loss: 10473133056.0000 Epoch 97: early stopping Complete, saving model
# Make predictions on the test set
y_pred = vgg16_model.predict([x_test, x_test_image])
# Calculate RMSE
rmse = np.sqrt(mean_squared_error(y_test, y_pred))
print(f"\nRoot Mean Squared Error (RMSE): {rmse:.2f}")
3/3 ━━━━━━━━━━━━━━━━━━━━ 0s 53ms/step Root Mean Squared Error (RMSE): 100346.78
chart_regression(y_pred.flatten(), y_test, sort= True)